웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > php

[PHP] switch() case 제어문 알아보기

Last Modified : 2016-06-30 / Created : 2016-06-29
8,716
View Count

PHP 언어에서 특정 값에 만족하는 케이스에 따라 다른 구문을 실행하기 위한 방법으로 switch case 문이 많이 사용됩니다. 이 방법을 사용하면  선택한 변수의 결과에 각기 다른 조건으로 함수를 실행할 수 있습니다.

이런 switch 구문은 if 구문과 매우 비슷합니다. 다만 if문은 모든 제어문을 실행해야 하지만 switch문은 원하는 값을 발견하면 해당 명령어만 실행 후 바로 break 시키기 때문에 뒤에 문장을 읽지 않아도 되는 장점이 있습니다. 조건이 많은 경우 모든 if문을 실행 할 필요가 없으니 상황에 따라서 더 효과적일 수 있죠. 그럼 아래는 사용하는 방법을 예제를 통해 자세히 알아보겠습니다.



# switch case 구문 예제보기


아래 예제는 년월일의 월에 해당하는 부분을 영문으로 바꾸는 예제입니다. 예를들어 1월인경우 Jan 텍스트로 변경되어 $monthStr에 저장합니다. 그럼 아래 예제를 참고해주세요.

<?php
$month = "1";
$monthStr ="";

switch ($month){
   case '1':
      $monthStr = 'Jan';
      break;
   case '2':
      $monthStr = 'Feb';
      break;
   case '3':
      $monthStr = 'Mar';
      break;
   ...
   ..
   .
   default:
      $monthStr= 'Null';
}
?>

위 구문을 사용할 경우 해당하는 변수 $month와 맞는 값을 찾기위해 위에서부터 순차적으로 계속해서 실행됩니다. 그리고 해당하는 값을 찾으면 case: 뒤의 구문을 실행하고 break 키워드에 의하여 종료되게됩니다.

맨 뒤의 위치한 default 는 만약 모든 case에 해당하는 값이 없는 경우에 기본값으로 실행할 구문을 위치시킵니다. 즉, 아무런 값이 없는 ... if문의 else { } 와 동일한 역할을 수행한다고 보시면 됩니다. 참고로 맨 뒤에는 break는 없어도 무방할 것입니다.


# 적용 가능한 예는?


현재 switch 구문을 사용하여 현재의 년월일 중에서 월에 해당하는 숫자를 영문으로 바꾸어 사용할 수 있습니다. 그외에도 만약 전화번호의 지역번호에 해당하는 부분을 지역명으로 변경하는 것도 가능할 것입니다.

<?php
   $localNo = "02";

   switch ($localNo) {
      case "02":
         $localStr = "서울";
         break;
       case "031":
          $localStr = "인천";
          break;
   }
?>


Previous

[PHP] 문자열 길이 가져오기, strlen(), mb_strlen()

Previous

[PHP] substr() 문자열 일부 자르기, 일부만 가져오기